home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / TabPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-16  |  5.2 KB  |  272 lines

  1. package symantec.itools.awt;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Event;
  6. import java.awt.Insets;
  7. import java.util.Vector;
  8.  
  9. public class TabPanel extends BaseTabbedPanel {
  10.    Vector vPanels;
  11.    String[] labels;
  12.    boolean bOsHack;
  13.  
  14.    public TabPanel() {
  15.       this(0, 0);
  16.    }
  17.  
  18.    public TabPanel(boolean var1) {
  19.       this(var1 ? 0 : 1, var1 ? 0 : 1);
  20.    }
  21.  
  22.    public TabPanel(int var1, int var2) {
  23.       super(var1, var2);
  24.       this.vPanels = new Vector();
  25.       String var3 = System.getProperty("os.name");
  26.       if (var3.equals("Windows 95")) {
  27.          this.bOsHack = true;
  28.       } else {
  29.          this.bOsHack = false;
  30.       }
  31.    }
  32.  
  33.    public int addTabPanel(String var1, boolean var2, Component var3) {
  34.       this.vPanels.addElement(var3);
  35.       return ((BaseTabbedPanel)this).addTab(var1, var2);
  36.    }
  37.  
  38.    public int getCurrentPanelNdx() {
  39.       return super.curIndex;
  40.    }
  41.  
  42.    public void setCurrentPanelNdx(int var1) {
  43.       this.showTabPanel(var1);
  44.    }
  45.  
  46.    public Component add(Component var1) {
  47.       return this.add(var1, -1);
  48.    }
  49.  
  50.    private String createDefaultLabel(int var1) {
  51.       String var2 = "tab - ";
  52.       var2 = var2 + String.valueOf(var1);
  53.       return var2;
  54.    }
  55.  
  56.    public synchronized Component add(Component var1, int var2) {
  57.       this.showTabPanel(this.addTabPanel(this.createDefaultLabel(this.vPanels.size()), true, var1));
  58.       this.updatePanelLabels();
  59.       return var1;
  60.    }
  61.  
  62.    public synchronized Component add(String var1, Component var2) {
  63.       return var2;
  64.    }
  65.  
  66.    public synchronized void remove(Component var1) {
  67.       int var2 = this.getPanelTabIndex(var1);
  68.       if (this.countTabs() == 1) {
  69.          this.removeAllTabPanels();
  70.       } else {
  71.          if (var2 == 0) {
  72.             this.showTabPanel(1);
  73.          } else {
  74.             this.showTabPanel(var2 - 1);
  75.          }
  76.  
  77.          this.removeTabPanel(var2);
  78.       }
  79.    }
  80.  
  81.    public void setPanelLabels(String[] var1) {
  82.       this.labels = var1;
  83.       this.updatePanelLabels();
  84.    }
  85.  
  86.    public String[] getPanelLabels() {
  87.       return this.labels;
  88.    }
  89.  
  90.    public void updatePanelLabels() {
  91.       try {
  92.          for(int var1 = 0; var1 < this.vPanels.size(); ++var1) {
  93.             String var2;
  94.             if (this.labels != null) {
  95.                try {
  96.                   var2 = this.labels[var1];
  97.                } catch (ArrayIndexOutOfBoundsException var3) {
  98.                   var2 = this.createDefaultLabel(var1);
  99.                }
  100.             } else {
  101.                var2 = this.createDefaultLabel(var1);
  102.             }
  103.  
  104.             ((BaseTabbedPanel)this).setLabel(var2, var1);
  105.          }
  106.  
  107.       } catch (Throwable var4) {
  108.       }
  109.    }
  110.  
  111.    public void setTabsOnBottom(boolean var1) {
  112.       ((BaseTabbedPanel)this).setTabsInfo(var1 ? 1 : 0, var1 ? 1 : 0);
  113.       ((BaseTabbedPanel)this).layout();
  114.    }
  115.  
  116.    public boolean getTabsOnBottom() {
  117.       return ((BaseTabbedPanel)this).getTabsPosition() != 0;
  118.    }
  119.  
  120.    public synchronized void setTabPanel(String var1, boolean var2, Component var3, int var4) {
  121.       if (var4 >= 0 && var4 < this.vPanels.size()) {
  122.          if (var4 != ((BaseTabbedPanel)this).currentTabIndex() || var2) {
  123.             try {
  124.                this.vPanels.setElementAt(var3, var4);
  125.                ((BaseTabbedPanel)this).setTab(var1, var2, var4);
  126.             } catch (ArrayIndexOutOfBoundsException var5) {
  127.             }
  128.          }
  129.       }
  130.    }
  131.  
  132.    public synchronized Component getTabPanel(int var1) {
  133.       if (var1 >= 0 && var1 < this.vPanels.size()) {
  134.          Component var2 = null;
  135.  
  136.          try {
  137.             var2 = (Component)this.vPanels.elementAt(var1);
  138.          } catch (ArrayIndexOutOfBoundsException var3) {
  139.          }
  140.  
  141.          return var2;
  142.       } else {
  143.          return null;
  144.       }
  145.    }
  146.  
  147.    public synchronized int getPanelTabIndex(Component var1) {
  148.       return this.vPanels.indexOf(var1);
  149.    }
  150.  
  151.    public synchronized void showTabPanel(int var1) {
  152.       if (((BaseTabbedPanel)this).tabIsEnabled(var1)) {
  153.          try {
  154.             Component var2 = (Component)this.vPanels.elementAt(var1);
  155.             ((BaseTabbedPanel)this).showTab(var1);
  156.             ((BaseTabbedPanel)this).showPanel(var2);
  157.          } catch (ArrayIndexOutOfBoundsException var3) {
  158.          }
  159.       }
  160.    }
  161.  
  162.    public synchronized void enableTabPanel(boolean var1, int var2) {
  163.       if (var2 >= 0 && var2 < this.vPanels.size() && var2 != super.curIndex) {
  164.          ((BaseTabbedPanel)this).enableTab(var1, var2);
  165.       }
  166.    }
  167.  
  168.    public synchronized void removeTabPanel(int var1) {
  169.       if (var1 >= 0 && var1 < this.vPanels.size() && var1 != super.curIndex) {
  170.          try {
  171.             Component var2 = (Component)this.vPanels.elementAt(var1);
  172.             super.remove(var2);
  173.             this.vPanels.removeElementAt(var1);
  174.          } catch (ArrayIndexOutOfBoundsException var3) {
  175.          }
  176.  
  177.          ((BaseTabbedPanel)this).removeTab(var1);
  178.       }
  179.    }
  180.  
  181.    public synchronized void removeAllTabPanels() {
  182.       this.vPanels = new Vector();
  183.       super.curIndex = -1;
  184.       ((BaseTabbedPanel)this).removeAllTabs();
  185.    }
  186.  
  187.    public int countTabs() {
  188.       return this.vPanels.size();
  189.    }
  190.  
  191.    public boolean handleEvent(Event var1) {
  192.       switch (var1.id) {
  193.          case 1001:
  194.             if (var1.target instanceof TabPanel && var1.target == this) {
  195.                this.showTabPanel(((BaseTabbedPanel)this).currentTabIndex());
  196.             }
  197.          default:
  198.             return super.handleEvent(var1);
  199.       }
  200.    }
  201.  
  202.    public Dimension preferredSize() {
  203.       Object var1 = null;
  204.       Object var2 = null;
  205.       Dimension var3 = ((Component)this).size();
  206.       int var4 = this.vPanels.size();
  207.       Insets var5 = ((BaseTabbedPanel)this).insets();
  208.       var3.width -= var5.left + var5.right;
  209.       var3.height -= var5.top + var5.bottom;
  210.       if (var3.width < 0) {
  211.          var3.width = 0;
  212.       }
  213.  
  214.       if (var3.height < 0) {
  215.          var3.height = 0;
  216.       }
  217.  
  218.       for(int var6 = 0; var6 < var4; ++var6) {
  219.          Component var7 = (Component)this.vPanels.elementAt(var6);
  220.          if (var7 != null) {
  221.             Dimension var8 = var7.minimumSize();
  222.             if (var8.width > var3.width) {
  223.                var3.width = var8.width;
  224.             }
  225.  
  226.             if (var8.height > var3.height) {
  227.                var3.height = var8.height;
  228.             }
  229.  
  230.             var8 = var7.preferredSize();
  231.             if (var8.width > var3.width) {
  232.                var3.width = var8.width;
  233.             }
  234.  
  235.             if (var8.height > var3.height) {
  236.                var3.height = var8.height;
  237.             }
  238.          }
  239.       }
  240.  
  241.       var3.width += var5.left + var5.right;
  242.       var3.height += var5.top + var5.bottom;
  243.       return var3;
  244.    }
  245.  
  246.    public Dimension minimumSize() {
  247.       Object var1 = null;
  248.       Object var2 = null;
  249.       Dimension var3 = new Dimension(0, 0);
  250.       int var4 = this.vPanels.size();
  251.  
  252.       for(int var5 = 0; var5 < var4; ++var5) {
  253.          Component var7 = (Component)this.vPanels.elementAt(var5);
  254.          if (var7 != null) {
  255.             Dimension var8 = var7.minimumSize();
  256.             if (var8.width > var3.width) {
  257.                var3.width = var8.width;
  258.             }
  259.  
  260.             if (var8.height > var3.height) {
  261.                var3.height = var8.height;
  262.             }
  263.          }
  264.       }
  265.  
  266.       Insets var6 = ((BaseTabbedPanel)this).insets();
  267.       var3.width += var6.left + var6.right;
  268.       var3.height += var6.top + var6.bottom;
  269.       return var3;
  270.    }
  271. }
  272.